Guild icon
wafer.space Community
📐 - Designing / 🕰️-analog
Between 2026-07-31 11:59 p.m. and 2026-09-01 12:00 a.m.
Avatar
Need to make a analog comparator for my next analog layout. Can’t I just re-use my normal opamp schematic for this? As far as I understand, the two are very similar.
6:51 p.m.
Opamp but the output stage is replaced with a schmitt trigger inverter/buffer = comparator
6:51 p.m.
?
6:51 p.m.
Well, maybe not a schmitt trigger depending on the application.
6:52 p.m.
Wait, is there even a difference between the two?
Avatar
It's the same basic concepts but you optimize for different things.
6:57 p.m.
What are the requirements for your comparator ?
Avatar
I’m worried about the output not being something I can safely feed into a standard cell because it might settle on a voltage between high and low.
6:59 p.m.
That’s my current concern
7:00 p.m.
I can optimize it for the input voltage ranges I’m using later, when I have some more concrete numbers.
7:01 p.m.
opamps have analog outputs, so can generate non-logic-level voltages
Avatar
The general idea is you need enough gain so that any voltage difference at the input will result in the output hitting the rails ...
7:02 p.m.
and then ideally some hysteresis so that noise doesn't create a mess if you have slow transitions.
7:02 p.m.
And as you said above, a schmitt trigger is not a bad way to provide both more gain as a second stage and hysteresis.
7:02 p.m.
This is what I did in the comparator for my 555 clone.
7:04 p.m.
But that's highly dependent on the application ... the "comparator" I did on sky 130 ( for high speed differential input ) works differently and just uses positive feedback and 3 stages to have enough gain to force input to a rail.
7:05 p.m.
I think i’ll look into how to build a schmitt trigger for this
Avatar
And then the comparator I'm working on now for clocked sampling works yet another way because if you sample at regular interval you can have sample step and amplify step.
7:06 p.m.
What's the application ?
Avatar
Overvoltage protection
7:09 p.m.
Sortof, but that’s the basic idea
Avatar
Avatar
Tholin
I’m worried about the output not being something I can safely feed into a standard cell because it might settle on a voltage between high and low.
AFAIK the solution to that is to have so many inverters in sequence that noise will make it statistically improbable to end up with metastable voltages at the end. Clocked comparators afaik help a lot for that, btw. You get a deliberate regenerative gain stage, suitable for feeding to a couple stages of DFFs just like you'd have to do for digital signals that cross clock domains btw.
Avatar
Avatar
tnt
And then the comparator I'm working on now for clocked sampling works yet another way because if you sample at regular interval you can have sample step and amplify step.
Ohhh, tell what for (if you can); I'm looking mildly anxiously forward to having to do similar but probably substantially more complicated due to needing it to run at probably 16x interleaving 🙁
Avatar
I'm slowly working toward my USB 2.0 HS PHY goal 😅
💜 2
Avatar
capmim*_m4m5_noshield , just checking wafer space support the mim, HRES poly resistor (one additional mask?) and Vt NMOS from s10 of pdk.
Avatar
It supports :
  • 2 fF/um^2 MiM
  • 1k / sq HRES poly
  • Native 6.0v nmos
(edited)
Avatar
Avatar
tnt
I'm slowly working toward my USB 2.0 HS PHY goal 😅
🙂 Do share what you get from that.
6:49 p.m.
[I'll also ask in the substantially non-overlapping chipalooza matrix, as it's more near-term relevant to there; I'll only expect to have such structure for e-test on Run3, but still..] Regarding the C_Offset capacitance digital trim banks: Is that what the sky130 PDK calls "accumulation-mode varactors"? https://skywater-pdk.readthedocs.io/en/main/rules/device-details.html#v-accumulation-mode-mos-varactors Do we have an appropriate device on gf180mcuD and/or IHP SG13cmos5L? [edit:]... we do seem to have an SVaricap on IHP SG13cmos5L; not so sure yet about the situation on gf180mcuD. Which isn't helped by my somewhat poor understanding of the supposed behavior of these structures that can't be replicated (properly) by "just" using "normal" PMOS devices in their own dedicated nwell, with their guard ring and that. (edited)
Avatar
Avatar
namibj
AFAIK the solution to that is to have so many inverters in sequence that noise will make it statistically improbable to end up with metastable voltages at the end. Clocked comparators afaik help a lot for that, btw. You get a deliberate regenerative gain stage, suitable for feeding to a couple stages of DFFs just like you'd have to do for digital signals that cross clock domains btw.
Ah, but I'd need a clock source for DFFs
Avatar
Avatar
Tholin
Ah, but I'd need a clock source for DFFs
What are you trying to lift the signal into then? Or is the purpose of the S that shall consume the comparator feed secret for the time being?
Avatar
Avatar
tnt
It supports :
  • 2 fF/um^2 MiM
  • 1k / sq HRES poly
  • Native 6.0v nmos
(edited)
thanks!
Avatar
@namibj There are varactor on gf180. All named "moscap".
Avatar
Avatar
tnt
@namibj There are varactor on gf180. All named "moscap".
oh. Are they built like the sky130 ones?
Avatar
Not sure never looked. magic has a pcell.
Avatar
Avatar
namibj
🙂 Do share what you get from that.
What I'm designing ATM looks basically similar to that drawing, except the input stage is pmos because common mode is very low, so nmos don't work there.
Avatar
Avatar
tnt
What I'm designing ATM looks basically similar to that drawing, except the input stage is pmos because common mode is very low, so nmos don't work there.
yeah that aspect in this one is handled by the CTLE preamp section drawn upper left
Avatar
Avatar
tnt
What I'm designing ATM looks basically similar to that drawing, except the input stage is pmos because common mode is very low, so nmos don't work there.
Avatar
Avatar
tnt
What I'm designing ATM looks basically similar to that drawing, except the input stage is pmos because common mode is very low, so nmos don't work there.
Time-interleaved or not for the USB-HS target?
8:40 p.m.
If you happen to have some reading material you can link on the clock recovery part of the subject matter, please do.
Avatar
Yes, my VCO is running at 240 MHz with 4 phase 0 90 180 270.
ferrisCatOwO 1
8:41 p.m.
Ok, gotta go sorry ...
ferristhumbsup 1
Avatar
I otherwise feel like I'd put like 4 extra ones next to the time-interleaved full data rate army either in a box or a cross pattern (not sure yet) and adjust to where those offset ones reach a notably-but-limited BER, comparing the information in the digital domain (slow side).
Avatar
Hi, I am checking a little bit this page: https://mithro.github.io/gf180mcu-project-template/ I have a question about the analog pins: would it be possible to have more using the standard pads? I see that we can have only 6 of them with the 0.5×1 (Half Width) Because we would like to have the chip on board packaging too
Avatar
My next submission is going to be a entire analog die. So I’m not going to need the LibreLane flow at all. I am going to do the routing to the pads myself, since I need the wires to be quite thick. Not sure how to accomplish this. I’ll keep everyone updated on my progress.
👍 3
Avatar
Avatar
Brunny
Hi, I am checking a little bit this page: https://mithro.github.io/gf180mcu-project-template/ I have a question about the analog pins: would it be possible to have more using the standard pads? I see that we can have only 6 of them with the 0.5×1 (Half Width) Because we would like to have the chip on board packaging too
I'm not 100% about the power pads, but analog/bidir/input can be changed in the template to whatever you want. You just can't change the pad position/size/number if you want to use the COB packaging. Pretty sure you can change the power pads too, I don't think the COB pcb ties them together. but not 100% on that part
👍 1
Avatar
Honestly, if that was the case, it would not make sense to write down the number of bidir/analog/input pads and power pads inside the project template. But I would be very happy if this is the case 😍
Avatar
Avatar
Tholin
My next submission is going to be a entire analog die. So I’m not going to need the LibreLane flow at all. I am going to do the routing to the pads myself, since I need the wires to be quite thick. Not sure how to accomplish this. I’ll keep everyone updated on my progress.
My idea would be to use the flow of librelane for the generation of the pads; if the pads are "free" a possible ideas would be to parallelize these standards pads, like using 2 or more pads for the same signal, and avoid to manually layout them.
Avatar
Did anyone look at the IOs drivers ? Are the final driver transistors nmos/pmos used as ESD diodes ? I don't see any separate ESD structures.
tnt started a thread. 2026-08-05 2:23 p.m.
Avatar
Avatar
Brunny
Honestly, if that was the case, it would not make sense to write down the number of bidir/analog/input pads and power pads inside the project template. But I would be very happy if this is the case 😍
I can say from experience (Run1) and because I also did it for Run2: you can definitely change bidir/analog/input to whatever you want 🙂 I think that page you found on Tim's github is just the result of a script that dumps out the default configs for comparison. I wouldn't read too much into it
Avatar
Avatar
Brunny
Honestly, if that was the case, it would not make sense to write down the number of bidir/analog/input pads and power pads inside the project template. But I would be very happy if this is the case 😍
Same understanding here, and as @BreakingTaps says you are free to do whatever you want and switch out they types between {analog/bidir/input} just keep the power pins in place for CoB packing.
Avatar
Great news guys, thanks a lot to both! For the power pins, I have to check their current specifications, I hope they are fine
🫡 1
👍 2
Avatar
Avatar
Brunny
Great news guys, thanks a lot to both! For the power pins, I have to check their current specifications, I hope they are fine
they're in the PDK on the page for that padring-member-class cell.
👍 1
7:11 p.m.
Working comparator
Avatar
Working oscillator?
Avatar
Technically, yes
9:47 p.m.
Now, "is it supposed to be an oscillator" is a different and no less interesting question entirely!
Avatar
I have a feeling the strong ARM latch with it's nominal/supposed output into an RS latch from which the stabilized output can then be recovered afterwards, would also work suitably for this task here, though ofc replacing the strongly regenerative, made possible through clocked gain core of a strong ARM latch with a sufficciently weakly regenerative one that just manages to provide the desired width of dead-band/hysteresis, and is then followed with a sufficcient quantity of differential gain stages to ensure it still correctly/properly operates the RS latch. One would probably need to rely on CMOS inverter [-pair] (weakened by channel elongation to reduce bandwidth to what the following parts can actually utilize, and to curb power waste in that place, unless a current-starved-inverter style turns out to not break the regenerative core's operating principles) inputs in place of the strong ARM latch's natural nmos-diff-pair, but I doubt you need it to resolve double-hysteresis-flip signals (i.e., twice as much input amplitude as would be required to merely meet the input hysteresis, and where one would thus have a fairly weak but reasonably-above-noise-floor input signal) in under 2 ns (let's say 3ns given the use of 5V devices).
Avatar
Are there any DRC rules dictating a maximum width for a single transistor?
9:12 a.m.
Can I have one wide FET that stretches the entire width of the core area?
Avatar
Avatar
Tholin
My next submission is going to be a entire analog die. So I’m not going to need the LibreLane flow at all. I am going to do the routing to the pads myself, since I need the wires to be quite thick. Not sure how to accomplish this. I’ll keep everyone updated on my progress.
I am also still trying to figure out how to go about making an entirely analog die. Any suggestions, @Leo Moser (mole99) ? I want to do the whole core area by hand, only calling upon LibreLane for filler insertion and DRC checks.
Avatar
Avatar
Tholin
I am also still trying to figure out how to go about making an entirely analog die. Any suggestions, @Leo Moser (mole99) ? I want to do the whole core area by hand, only calling upon LibreLane for filler insertion and DRC checks.
Leo Moser (mole99) 2026-08-10 9:22 a.m.
Well, for the first part you can either use magic or KLayout to draw the layout (I suppose that wasn't the question 😉), and for the second part you could use a custom LibreLane flow, either through the API or by modifying the flow through the config. The gf180mcu-precheck is basically just that: it first reads in a GDS into LibreLane's current state using a custom step, and then runs e.g. Magic.DRC and KLayout.DRC on it. In your case, you can also add filler generation.
Precheck for wafer.space MPW runs using the gf180mcu PDK - wafer-space/gf180mcu-precheck
Avatar
Avatar
Leo Moser (mole99)
Well, for the first part you can either use magic or KLayout to draw the layout (I suppose that wasn't the question 😉), and for the second part you could use a custom LibreLane flow, either through the API or by modifying the flow through the config. The gf180mcu-precheck is basically just that: it first reads in a GDS into LibreLane's current state using a custom step, and then runs e.g. Magic.DRC and KLayout.DRC on it. In your case, you can also add filler generation.
The problem is that I’d rather not have to figure out how to draw the padring and sealring by hand. I need a template. A gf180-analog-template, if you will :P
9:31 a.m.
I guess a LibreLane flow that aborts after just those steps?
Avatar
Avatar
Tholin
The problem is that I’d rather not have to figure out how to draw the padring and sealring by hand. I need a template. A gf180-analog-template, if you will :P
Leo Moser (mole99) 2026-08-10 9:36 a.m.
Now I understand! Yes that one already exists, you can find more information on running the flow in the project template README: https://github.com/wafer-space/gf180mcu-project-template#building-a-standalone-padring-for-analog-design
Project template for wafer.space MPW runs using the gf180mcu PDK - wafer-space/gf180mcu-project-template
Avatar
Idk how you manage to always be one step ahead
9:38 a.m.
Thank you
Avatar
Leo Moser (mole99) 2026-08-10 9:51 a.m.
Haha, well, it's a common problem with analog designs. You're welcome!
Avatar
I think I’m going to go for a quarter slot this time and hope it gets squeezed into some spare space like some projects did on run 2.
👌 1
Avatar
Leo Moser (mole99) 2026-08-10 10:11 a.m.
If you have the time to create additional variations of your design, such as half-slot versions, chances are even higher.
Avatar
That would be a lot of work since I am doing the whole layout by hand, but I can try
👍 1
10:12 a.m.
I probably can adapt it quite easily for half-slot, but I’d feel bad taking up a full slot since this is a pretty simple circuit that is already going to have a lot of unused space on the quarter slot.
10:12 a.m.
I think
10:13 a.m.
Most of the die area is going to be a big power FET, but I don’t expect it to be too large.
10:13 a.m.
In typical fashion, I will fill the remaining area with art
10:13 a.m.
Which should be easier this time since I don’t have to worry about keeping LibreLane out of trouble around the artworks.
Avatar
Avatar
Tholin
Which should be easier this time since I don’t have to worry about keeping LibreLane out of trouble around the artworks.
Are you also trying to submit this for Chipalooza?
Avatar
I don’t know what Chipalooza is
Avatar
Leo Moser (mole99) 2026-08-10 10:21 a.m.
@Tim Edwards is hosting Chipalooza, see here for more: https://opencircuitdesign.com/chipalooza/
Avatar
Huh, interesting
10:26 a.m.
But does look a lot more is involved there
10:26 a.m.
Like, I see a bunch of review steps
Avatar
You can handle it! Anyway, Chipalooza for GF will launch in a week and I will announce on the Wafer.Space discord.
waferspace 1
Avatar
I’m reading the FAQ right now. So, I need to make a layout that is integrated onto a multi-project die? (edited)
12:46 p.m.
Hmmm, not sure what I’m building now is suitable, then, but I can maybe take some of its component modules and do something with those.
Avatar
Avatar
Tholin
The problem is that I’d rather not have to figure out how to draw the padring and sealring by hand. I need a template. A gf180-analog-template, if you will :P
KLayout has them as PCells. Well, the sealring; you could also take a template GDS and flatten and delete everything but the top metal/pad-opening structures from inside the sealring, leaving only the literal pads themselves (I'd suggest considering to keep the existing via structure of how the pad electrical connection is escaped downwards, as there are some minor DRC aspects around the interaction between (especially upper-level) vias and pads if those pads are wedge-bonded (like all of Run1 has been)
Avatar
Avatar
Tholin
I am also still trying to figure out how to go about making an entirely analog die. Any suggestions, @Leo Moser (mole99) ? I want to do the whole core area by hand, only calling upon LibreLane for filler insertion and DRC checks.
For the record, FC01 was done entirely in KLayout using the IEEE Chipathon docker tag. Took me a few tries to get the coordinate origin and exact precise size of the pad ring right, but that was it.
Exported 91 message(s)
Timezone: UTC+0